package com.softer.wxzj.mapper;

import com.softer.wxzj.entity.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author Gong Zhiyang
 * @date 2020/7/6
 */
@Repository
public interface ExcelMapper {
    /**
     * 根据小区名称查询临时表中是否存在相同信息
     *
     * @param regionName 小区名称
     * @return 临时表数据
     */
    ExcelRegion getRegionByRegionName(String regionName);

    /**
     * 删除缓存表中的有关小区的所有数据
     *
     * @param id 小区ID
     * @return 处理结果
     */
    int deleteById(String id);

    /**
     * 缓存表中加入新增小区信息
     *
     * @param excelRegion 小区信息
     * @return 新增结果
     */
    int addRegion(ExcelRegion excelRegion);

    /**
     * 批量添加分区信息
     *
     * @param subRegionList 分区集合
     * @return 新增结果
     */
    int addSubRegion(@Param("subRegionList") List<ExcelSubRegion> subRegionList);

    /**
     * 批量添加自然幢信息
     *
     * @param buildList 自然幢信息
     * @return 新增结果
     */
    int addBuild(@Param("buildList") List<ExcelBuilding> buildList);

    /**
     * 查询小区信息
     *
     * @param regionId 小区ID
     * @return 小区信息
     */
    ExcelRegion getRegion(String regionId);

    /**
     * 查询分区信息
     *
     * @param regionId 小区ID
     * @return 分区信息
     */
    List<ExcelSubRegion> getSubRegion(String regionId);

    /**
     * 查询自然幢信息
     *
     * @param regionId 小区ID
     * @return 自然幢信息
     */
    List<ExcelBuilding> getBuilding(String regionId);

    /**
     * 分页查询批量导入的信息
     *
     * @param regionId 小区ID
     * @return 房屋列表
     */
    List<ExcelBuilding> getBuildingList(String regionId);

    /**
     * 根据分区编号查询分区信息
     *
     * @param subRegionNo 分区编号
     * @param regionId 小区ID
     * @return 分区信息
     */
    BaseSubRegionInfo getSubRegionByNo(@Param("subRegionNo")String subRegionNo,@Param("regionId")String regionId);

    /**
     * 根据自然幢ID，查询小区和自然幢名称
     * @param buildId 自然幢ID
     * @return 小区和自然幢名称
     */
    String getRegionName(String buildId);
}
